﻿using UnityEngine;
using UnityEngine.Rendering;


// 该特性使得这个类可以在 Unity 编辑器的 "Assets -> Create -> Rendering -> Custom Render Pipeline" 菜单下创建资源
// 也就是说，你可以通过 Unity 编辑器 UI 创建一个该类型的资产文件（比如叫 MyCustomPipeline.asset）
// 这个资产实际上代表了一个自定义渲染管线的配置/实例化入口
[CreateAssetMenu(menuName = "Rendering/Custom Render Pipeline")]

// 这是一个继承自 RenderPipelineAsset 的自定义渲染管线资源类
// 它可以在 Unity 编辑器的菜单中创建（通过 CreateAssetMenu 特性）
// RenderPipelineAsset 是 Unity SRP（可编程渲染管线，Scriptable Render Pipeline）的基础
// 用于定义和实例化一个自定义的渲染管线（RenderPipeline）
public class CustomRenderPipelineAsset : RenderPipelineAsset
{
	// 重写了基类的 CreatePipeline 方法，该方法会在运行时被 Unity 自动调用
	// 用于创建并返回一个具体的 RenderPipeline 实例（也就是真正执行渲染逻辑的那个类）

	protected override RenderPipeline CreatePipeline()
	{
		// 这里我们返回一个新的自定义渲染管线对象 CustomRenderPipeline
		// 注意：CustomRenderPipeline 必须是你自己实现的、继承自 RenderPipeline 的类
		// 它包含实际的渲染逻辑（比如怎么画相机、物体、光照等）
		return new CustomRenderPipeline();
	}
}